目录上一页下一页索引


许可证文件格式

附录 B


许可证文件的开头一般是一个 SERVER 行(对于三服务器冗余服务器,为三行),其后是一行或多行 VENDOR 行,再往后是一行或多行 FEATURE 或 INCREMENT 行。在某些情况下,许可证文件不需要使用 SERVER 行和 VENDOR 行。

可以修改许可证文件中的以下元素:

使用“\”续行符来截断很长的行。

许可证文件、选项文件、日志文件和 FLEXenabled 应用程序环境对 8 位拉丁字符提供完全支持。

关于 SERVER 和 VENDOR 行要求的详细信息,请参见“计数和不计数的许可证”。


FLEXnet Licensing 版本注释


许可证文件语法

许可证文件样例

下面是具有两个功能的某个供应商的许可证文件示例。

SERVER my_server 17007ea8 1700
VENDOR sampled
FEATURE f1 sampled 1.000 01-jan-2005 10 SIGN=9BFAC0316462
FEATURE f2 sampled 1.000 01-jan-2005 10 SIGN=1B9A308CC0F7

许可证文件使主机标识为“17007ea8”的许可服务器系统“my_server”能够为每个功能(“f1”和“f2”)向网络上的所有用户提供 10 个浮动许可证。

SERVER 行

SERVER 行指定许可服务器系统的主机名和主机标识,以及许可服务器管理器 (lmgrd) 的 TCP/IP 端口号。通常一个许可证文件有一个 SERVER 行。如果有三个 SERVER 行,则说明使用的是三服务器冗余许可服务器系统。如果没有 SERVER 行,则说明许可证文件中的所有 FEATURE 和 INCREMENT 行都是不计数的。

SERVER 行中的主机标识被计算为每个 FEATURE 和 INCREMENT 行的许可证号或签名。为此,请确保将 SERVER 行与相应的 FEATURE/INCREMENT 行放在一起,使之保持供应商发放许可证时的状态。

SERVER 行的格式为:

SERVER host hostid [port] [PRIMARY_IS_MASTER] [SERVER_TIMEOUT=seconds]

其中:

字段
说明
host
系统主机名或 IP 地址。UNIX hostnameuname -n 命令返回的字符串。在 NT/2000/XP 中,是 ipconfig /all 返回的主机名;而在 Windows 95/98/ME 中,是 winipcfg /all 返回的主机名。
hostid
通常是 lmhostid 命令返回的字符串。只能由软件供应商更改。
port
使用的 TCP/IP 端口号。有效的端口号是 0 到 64000 之间未使用的任意数字。在 UNIX 中,端口号应 >1024,因为 1024 以下的端口号是具有特权的端口号。如果未指定 TCP/IP 端口号,将使用默认端口号。默认端口号介于 27000 和 27009 之间。
在三服务器冗余许可服务器系统配置中指定服务器的 SERVER 行要求指定一个端口号;Macrovision 建议使用 27000 至 27009 范围之外的端口号。
PRIMARY_IS_MASTER
对于三服务器冗余配置,表示如何在主服务器和辅助服务器间转换主机服务器控制。
  • 如果设置了该配置,则当主服务器发生故障时辅助服务器将成为主机服务器,并在主服务器恢复正常时将控制转换回主服务器。
  • 如果未设置该配置,则当主服务器发生故障时辅助服务器将成为主机服务器,并一直作为主机服务器,即使主服务器恢复正常。
如果主服务器和辅助服务器同时发生故障,将不再提供许可证。任何情况下第三个服务器都不会成为主机服务器。
该参数为可选参数,位于许可证文件的第一个 SERVER 行中。必须运行供应商守护程序 v10.8 才能使用该参数。
SERVER_TIMEOUT=
seconds
对于三服务器冗余配置,表示服务器自动关闭前等待接收配置中另一服务器重要数据的时间。以下等式中使用 seconds 计算超时:

超时 = (3 x seconds) + (seconds - 1)

如果未指定,则默认的 seconds 值为 20,即超时值为 79 秒。seconds 的有效值介于 0120 之间。
该参数为可选参数,位于许可证文件的第一个 SERVER 行中。必须运行供应商守护程序 v10.8 才能使用该参数。

例如:

SERVER my_server 17007ea8 21987

三服务器冗余配置

组成三服务器冗余配置的计算机必须可进行畅通的通信联络,且彼此之间的物理距离必须很近。这种冗余结构要求服务器定期交换重要数据,通信能力差将导致性能降低。避免使用速度较慢的通信或拨号连接来配置冗余服务器。

在每个服务器计算机本地(而不是文件服务器)上保留一份相同的许可证文件副本(以及 lmgrd 和供应商守护程序二进制文件)。如果不这样做,会失去使用冗余服务器的所有好处,因为保存这些文件的文件服务器变成了一个单独的故障点。

通过将三个 SERVER 行置于许可证文件中来指定三服务器冗余配置。在所有三个文件中,一组三个 SERVER 行必须以相同的顺序显示,每行对应一个指定的服务器。在任何指定时间,lmgrd 都具有主机服务器的概念,其职责包括:

默认情况下,主服务器即为主机服务器;当主服务器发生故障时,转换主机服务器职责的方法由 PRIMARY_IS_MASTERBy 参数控制。

为什么冗余配置中需要三个许可服务器系统?

为了提供许可服务器系统故障保护,多个冗余服务器系统(每个系统在其各自的计算机上运行)必须能够提供同一组计数许可证。但是,为确保软件发布商许可证的一致性和安全性,这些冗余许可服务器系统必须确保每次只能由其中一个提供许可证。

给定的一组计数许可证通过许可证文件中的 SERVER 行绑定到指定数目的冗余许可服务器计算机的主机标识。通过这种方式,每个许可服务器系统知道如何与绑定到同一组计数许可证的其他冗余许可服务器系统进行通信。启动时,每个服务器系统将确定是否可以与其他冗余许可服务器系统进行通信。当组内所有成员都可以与该组中的其他服务器通信时,就会形成冗余许可服务器系统组。

该组一旦形成,将确保每次只有其中一个许可服务器能够提供许可证。但是,FLEXnet Licensing 必须确保在所有冗余许可服务器中只能形成一个这样的组。为了确保只形成一个组,只有包含的冗余许可服务器数目超过一半的组才能提供许可证。该许可服务器组称为“多数”。“多数”之外的许可服务器(包括无法与其冗余许可服务器的其他任意服务器进行通信的单个许可服务器)拒绝提供许可证。“多数”之外的许可服务器会继续运行,但是只能继续尝试加入“多数”或形成“多数”(如果“多数”不存在)。

如果某个许可服务器系统检测到自己无法再与“多数”进行通信,该服务器系统在恢复通信之前将拒绝提供许可证。如果“多数”成员确定其无法与足够数目的其他许可服务器进行通信,并导致不能构成“多数”,这些服务器系统将拒绝提供许可证。

如果 FLEXnet Licensing 允许将一组计数许可证仅绑定到两个冗余许可服务器系统,那么根据上述规则,只有包含的冗余许可服务器总数超过一半的组才可以提供许可证。对于仅有两个成员的组,意味着这两个许可服务器必须保持持续通信,并且均不能出现故障。也就是说,大于二的一半的数值只有二,这不是故障保护解决方案。

显然,出于“多数”的需要,要使用的冗余许可服务器系统的数目应为奇数。如果所使用许可服务器的数目为偶数,则需要将一个额外的许可服务器添加到“多数”中,而不增加值。出于简单易用的目的,FLEXnet Licensing 仅支持三个冗余许可服务器,因为三是大于一的最小奇数。

请参见

FLEXnet Licensing 版本注释


VENDOR 行

VENDOR 行指定守护程序的名称和路径,lmgrd 使用此行来启动供应商守护程序,供应商守护程序读取它来查找其选项文件。VENDOR 行的格式如下所示。

VENDOR vendor [vendor_daemon_path]\
                [[OPTIONS=]options_file_path] [[PORT=]port]

其中:

字段
说明
vendor
为文件中的某些功能提供服务的供应商守护程序的名称。管理员不能更改此名称。
vendor_daemon_path
此守护程序的可执行文件的可选路径。一般来说,许可证管理员可以将守护程序安装在任意目录中。(但是,建议安装在许可服务器计算机的本地目录中。)
如果省略此参数,lmgrd 按以下顺序查找供应商守护程序的二进制文件:
  • 当前目录
  • lmgrd 的 $PATH 环境变量中指定的路径
  • lmgrd 所在的目录
如果 vendor_daemon_path 为空,那么任何选项或 TCP/IP 端口号说明均要求使用 OPTIONS=PORT= 字符串。
options_file_
path
此守护程序的最终用户选项文件的完整路径。FLEXnet Licensing 不一定要使用选项文件。
如果省略此参数,则默认情况下,供应商守护程序在许可证文件所在的目录中查找一个名为 vendor.opt 的文件(其中 vendor 是供应商守护程序的名称)。
port
供应商守护程序的 TCP/IP 端口号。
如果未指定 port,默认情况下,由操作系统在运行时选择。装有 Internet 防火墙的站点必须指定守护程序使用的 TCP/IP 端口号。如果在 VENDOR 行中指定了 TCP/IP 端口号,则可能会延迟重新启动供应商守护程序。

请参见

FLEXnet Licensing 版本注释


USE_SERVER 行

USE_SERVER 不接受任何参数,对服务器没有影响。当应用程序看到 USE_SERVER 后,除了前面带有 SERVER 行的内容以外,它将忽略许可证文件中的所有其他内容,并向供应商守护程序传递检出验证。

建议使用 USE_SERVER,因为在使用许可服务器系统时它可以提高性能。对于不计数功能,守护程序使用 USE_SERVER 强制记录使用情况。

FEATURE/INCREMENT 行

FEATURE 行描述使用产品所必需的许可证。INCREMENT 行可代替 FEATURE 行,也可用于不断地将许可证添加到许可证文件中以前的 FEATURE 或 INCREMENT 行上。

供应商守护程序只处理给定功能的第一个 FEATURE 行。如果要获得同一功能的额外副本(例如,要获得多个节点锁定的计数功能),必须使用多个 INCREMENT 行。INCREMENT 行基于以下字段构成许可证组或 pools

如果两行中的这些字段有差别,供应商守护程序中会创建一个名为许可证池的新许可证组,并且这个组与具有相同功能名的其他许可证池分开计数。FEATURE 行并不给出额外的许可证,而 INCREMENT 行则总是给出额外的许可证。

基本 FEATURE/INCREMENT 行的格式:

{FEATURE|INCREMENT} feature vendor feat_version exp_date \
            num_lic SIGN=sign [optional_attributes]

FEATURE/INCREMENT 行关键字后必须有六个字段,并且这六个字段的顺序是固定的。它们由供应商定义,不能更改。表 B-1 按这些字段必须出现的顺序进行了介绍。

表 B-1: FEATURE/INCREMENT 行必需的字段
字段
说明
feature
供应商给出的功能名。
vendor
供应商守护程序的名称;在 VENDOR 行也可找到。指定的守护程序为此功能提供服务。
feat_version
许可证支持的此功能的版本。
exp_date
许可证的有效日期,格式为 dd-mmm-yyyy, 例如:07-may-2005。注意:如果 exp_date 是字符串“permanent”,或者年份是 0(或 00、000、0000),则许可证永不过期。
num_lic
此功能的并发许可证数量。如果 num_lic 设置为字符串“uncounted”或 0,则此功能的许可证是不计数的,不需要使用 lmgrd,但是需要在 FEATURE 行中提供主机标识。请参见“计数和不计数的许可证”。
SIGN=sign
AUTH=...
SIGN= 用于验证这一 FEATURE 行的签名。
如果发布商已使用公共供应商守护程序技术展开其供应商守护程序,则将在 AUTH= 关键字内嵌入许可证书签名。详细信息请与发布商联系。

表 B-2 列出了可能出现在 FEATURE 或 INCREMENT 行中的属性。这些属性由供应商根据需要来提供,用于实现各种许可方式。它出现在 FEATURE 或 INCREMENT 行中,必须保持原样,不能由最终用户修改。这些属性具有 keyword=value 语法,其中 keyword 要大写。

value 为包括在双引号 ("...") 中的字符串时,该字符串可以包含除引号以外的任何字符。

表 B-2: 供应商提供的属性
属性
说明
BORROW[=n]
为特定的 FEATURE/INCREMENT 行启用许可证借用功能。n 为借用许可证的小时数。默认的借用期为 168 小时,或一星期。
DUP_GROUP=...
其语法为:
DUP_GROUP=NONE|SITE|[UHDV]
         U = DUP_USER
         H = DUP_HOST
         D = DUP_DISPLAY
         V = DUP_VENDOR_DEF
允许使用 UHDV 的任意组合,并且 DUP_MASK 是组合的 OR 运算。例如,DUP_GROUP=UHD 表示重复的分组是 (DUP_USER|DUP_HOST|DUP_DISPLAY),因此,对于在同一主机和显示器上的用户来说,额外使用该功能不会占用额外的许可证。
FLOAT_OK
[
=server_hostid]
通过使用 FLOAT_OK 指定的 FLEXid 为特定的 FEATURE/INCREMENT 行启用移动许可。同时,此 FEATURE/INCREMENT 行必须节点锁定到 FLEXid。
当在一个 FEATURE 行中指定 FLOAT_OK=server_hostid 时:
  • server_hostid 必须是指出现在许可证文件 SERVER 行中的同一主机。
  • 许可服务器系统只能在其主机标识(通过 lmhostid 返回)等于 server_hostid(使用 FLOAT_OK 指定)的计算机上运行。
HOSTID=
 "hostid1
 [hostid2 ...
  hostidn]"
与 FEATURE 行绑定的主机的 ID。hostidlmhostid 实用程序确定。不计数许可证要求使用此字段,而计数许可证也可以使用此字段。详细信息请参见附录 A“支持 FLEXnet Licensing 的平台的主机标识”
HOST_BASED[=n]
主机名必须在最终用户选项文件的 INCLUDE 语句中指定,而且主机数量的限制为 num_lic=n 中指定的值。
ISSUED=dd-mmm-yyyy
许可证的发放日期。
ISSUER="..."
许可证的发放者。
LINGER=n
供应商为此许可证定义的延期间隔时间。在选项文件中使用 LINGER 来延长这个时间。详细信息请参见“LINGER”。
NOTICE="..."
知识产权通告字段。
OVERDRAFT=n
透支政策允许供应商指定用户除了已经购买的许可证以外,还可以使用的额外许可证数量。从而允许用户在“临时透支”的情况下仍能继续使用。超出许可证限制的使用情况由 FLEXnet Manager 报告工具报告。
PLATFORMS="..."
仅限于在所列出的平台上使用。
SN=serial_num
序列号,用于识别 FEATURE 或 INCREMENT 行。
START=dd-mmm-yyyy
开始日期。
SUITE_DUP_GROUP=...
与 DUP_GROUP 相似,但是只影响为软件包启用 FEATURE 行。它将软件包的用户总数限制为许可证的数量,并允许检出了 SUITE 的用户共享该软件包。
SUPERSEDE=
"f1 f2 ..."
如果出现这一行,那么在 ISSUED= 中指定的日期以前发放的所有许可证均被这一行取代,并因此而失效。
TS_OK
当节点锁定的不计数许可证在 Windows 终端服务器下运行时,FLEXnet Licensing 进行检测。要通过终端服务器客户端窗口运行应用程序,必须向 FEATURE 行添加 TS_OK。如果没有 TS_OK,将拒绝向终端服务器客户端上运行的用户发放许可证。
USER_BASED[=n]
用户必须在最终用户选项文件的 INCLUDE 语句中指定,而且用户数量的限制为 num_lic=n 中指定的值。
VENDOR_STRING=
"..."
供应商定义的字符串,包括在双引号中。

表 B-3 中列出的属性是可选的,由最终用户控制。这些属性具有 keyword=value 语法,其中 keyword 要小写。

表 B-3: 最终用户属性
属性
说明
asset_info="..."
许可证管理员提供的用于资产管理的额外信息。
dist_info="..."
软件分销商提供的额外信息。
sort=nnn
指定许可证文件中行的排列次序。请参见“优先级顺序”。
user_info="..."
许可证管理员提供的额外信息。
vendor_info="..."
软件供应商提供的额外信息。

例如:

FEATURE sample_app sampled 2.300 31-dec-2005 20 \
        SIGN=123456789012
INCREMENT f1 sampled 1.000 permanent 5 \
        HOSTID=INTERNET=195.186.*.* NOTICE="Licensed to \
        Sample corp" SIGN=901234567890

优先级顺序

当 FLEXnet Licensing 对许可证文件中的 FEATURE/INCREMENT 行进行处理时,将自动对它们进行排序;默认排序规则如下:

  1. 许可证文件。自动排序不会在许可证文件列表中的文件间进行。
  2. 功能名。
  3. FEATURE 行在 INCREMENT 行之前。
  4. 不计数许可证在计数许可证之前。
  5. 版本,较高版本在较低版本之前。
  6. 许可证的发放日期,按逆序,即最新发放的许可证在最前面。该日期取自 ISSUED= 或 START= 中声明的日期。
  7. 否则,维持原始顺序。

要关闭自动排序,请将 sort=nnn 添加到 FEATURE/INCREMENT 行中,其中 nnn 在所有行中均相同;nnn 指定了相对的排列次序。默认的排列次序值为 100。排列次序值小于 100 的行排在所有未标记此属性的行之前,排列次序值大于 100 的行排在所有未标记此属性的行之后。排列次序数值相同的所有行将按照它们在文件中出现的顺序进行排序。


FLEXnet Licensing 版本注释


PACKAGE 行

PACKAGE 行的目的是支持两种不同的许可证发放需要:

PACKAGE 行本身并不授权任何事情 - 它必须与 FEATURE/INCREMENT 行配合,一起对整个软件包授权许可。PACKAGE 行由软件供应商随产品提供,不受任何许可证约束。日后,在购买该软件包的许可证时,一个或多个相应的 FEATURE/INCREMENT 行就可以启用该 PACKAGE 行。

例如:

PACKAGE package vendor [pkg_version] COMPONENTS=pkg_list \
        [OPTIONS=SUITE] [SUPERSEDE[="p1 p2 ..."] ISSUED=date]
        SIGN=pkg_sign

表 B-4 列出了 PACKAGE 行字段。它们必须按照列出的顺序出现。

表 B-4: PACKAGE 行字段
字段
说明
package
软件包的名称。相应的 FEATURE/INCREMENT 行必须具有相同的名称。
vendor
支持此软件包的供应商守护程序地名称。
pkg_version
指定软件包版本,是一个可选字段。如果指定此字段,启用的 FEATURE/INCREMENT 行必须具有相同的版本。
COMPONENTS=pkg_list
软件包组件列表。其格式为:
feature[:version[:num_lic]]
软件包必须至少包含一个组件。版本和计数是可选的。如果省略,它们的值将取自相应的 FEATURE/INCREMENT 行。仅当不设置 OPTIONS=SUITE 时,num_lic 才有效。在这种情况下,最终的许可证数量就等于 COMPONENTS 行中的 num_lic 乘以 FEATURE/INCREMENT 行中的许可证数量。例如:
COMPONENTS="comp1 comp2 comp3 comp4"
COMPONENTS="comp1:1.5 comp2 comp3:2.0:4"
OPTIONS=SUITE
可选字段。用于表示软件包套件。
如果设置此字段,除了检出组件功能以外,还会检出与软件包同名的相应功能。
如果不设置此字段,当启用软件包后,就会删除与软件包同名的相应功能。这样,在检出组件功能时就不会检出它。
OPTIONS=
SUITE_RESERVED
可选字段。如果设置了此字段,则会保留一组软件包组件。检出一个软件包组件后,将为同一用户保留所有其他组件。
SUPERSEDE
[="
p1 p2 ..."]
可选字段。与 ISSUED 日期结合使用。用于替换具有相同软件包名称的、ISSUED 日期在 dd-mmm-yyyy 之前的所有 PACKAGE 行。
ISSUED=
dd-mmm-yyyy
可选字段。与 SUPERSEDE 一起使用。用于替换具有相同软件包名称的、ISSUED 日期在 dd-mmm-yyyy 之前的所有 PACKAGE 行。
SIGN=sign
AUTH=...
SIGN= 用于验证这一 FEATURE 行的签名。
如果发布商已使用公共供应商守护程序技术展开其供应商守护程序,则将在 AUTH= 关键字内嵌入许可证书签名。详细信息请与发布商联系。

例如:

PACKAGE suite sampled 1.0 SIGN=3B24B2F508CB \
        COMPONENTS="comp1 comp2" OPTIONS=SUITE
FEATURE suite sampled 1.0 1-jan-0 5 SIGN=4193E6ABCCCB

这是一个典型的 OPTIONS=SUITE 样例。它定义了两种功能,即“comp1”和“comp2”,每种都是 1.0 版,而且每种都有五个永不过期的许可证。在签出“comp1”或“comp2”时,也会签出“suite”。

PACKAGE suite sampled 1.0 SIGN=2CBF44FCB9C1 \
        COMPONENTS="apple:1.5:2 orange:3.0:4"
FEATURE suite sampled 1.0 1-jan-2005 3 SIGN=321E78A17EC1 SN=123

在本例中,组件的版本取代了功能的版本,任何组件可以使用的许可证数量等于“suite”的三个许可证与该组件的许可证数量的乘积。结果等于:

FEATURE apple sampled 1.5 1-jan-2005 6 SIGN=0D3AD5F26BEC SN=123
FEATURE orange sampled 3.0 1-jan-2005 12 SIGN=EB16C5AE61F0 SN=123


FLEXnet Licensing 版本注释


UPGRADE 行

UPGRADE feature vendor from_feat_version to_feat_version \
exp_date num_lic [options ...] SIGN=sign

除增加了 from_feat_version 字段以外,所有数据都与 FEATURE 或 INCREMENT 行相同。UPGRADE 行删除任何旧版本 (>= from_feat_version) 中指定的所有许可证,并创建一个具有相同许可证数量的新版本。

例如,以下两行:

INCREMENT f1 sampled 1.000 1-jan-2005 5 SIGN=9BFAC0316462
UPGRADE f1 sampled 1.000 2.000 1-jan-2005 2 SIGN=1B9A308CC0F7

提供了“f1”的三个 v1.0 许可证和“f1”的两个 v2.0 许可证。

UPGRADE 行作用于最接近它的前一个 FEATURE 或 INCREMENT 行(其版本号 >= from_feat_version 并且 < to_feat_version)。


注意:UPGRADE 行对于节点锁定的不计数许可证不起作用。


十进制格式

许可证也可以用十进制格式来表示。十进制具有易于输入的优点,使用十进制的许可证号通常都会短很多。

便于阅读的许可证样例如下:

FEATURE f1 sampled 1.00 1-jan-2005 0 key1 HOSTID=DEMO

对应的十进制格式为:

sampled-f1-00737-55296-1825

如果需要,在许可证文件中,十进制行可与便于阅读的行混合使用。使用 lminstall 命令可以把十进制许可证转换为便于阅读的格式。

请参见

FLEXnet Licensing 版本注释


许可证文件顺序

许可证文件中行的顺序并不重要。在处理时对它们进行排序,是为了在大多数情况下得到最优结果。但是,v7.0 以前版本的 FLEXenabled 应用程序和许可服务器系统对许可证文件中行的顺序有隐含的要求。请注意以下关于许可证文件行排序的建议:

请参见

 

目录上一页下一页索引
FLEXnet Licensing 最终用户手册
版本 10.8
2005 年 5 月
版权